#include "../头文件/lcd.h"

/**
 * @brief GEC6818开发板中DDR3与显存建立映射关系。
 * 
 * @return int* 返回映射指针。
 */
int *lcd_init_mmap(void)
{
	int file_fd = open("/dev/fb0", O_RDWR);//打开LCD显示屏
	if(file_fd == -1)
	{
		printf("open /dev/fb0 fail!\n");
		return NULL;
	}	
		
	int *lcd_mmap_fd = malloc(sizeof(int *));//定义映射指针，建立映射关系。
	lcd_mmap_fd = mmap(NULL, 800*480*4, PROT_READ|PROT_WRITE,  MAP_SHARED, file_fd, 0);
	if(lcd_mmap_fd == MAP_FAILED)
	{
		printf("mmap lcd fail!\n");
		return NULL;
	}
	
	return lcd_mmap_fd;
}

/**
 * @brief 断开映射关系，释放资源
 * 
 * @param lcd_mmap 映射指针。
 * @return int 成功 0, 失败 -1
 */
int lcd_close_mmap(int *lcd_mmap)
{
	int ret = munmap(lcd_mmap, 800*480*4);//断开映射关系，释放资源。	
	if(ret == -1)
	{
		return -1;
	}
	
	return 0;
}
